package service.impl;

import dao.GoodsDao;
import dao.impl.GoodsDaoImpl;
import pojo.Goods;
import service.GoodsService;
import util.PageBean;

import java.util.ArrayList;
import java.util.List;

/**
 * 实现商品增删改查的数据处理实现类
 * @author 周超
 */
public class GoodsServiceImpl implements GoodsService {
    GoodsDao goodsDao=new GoodsDaoImpl();

    /**
     * 新增商品
     * @param goods
     * @return
     */
    @Override
    public int addGoods(Goods goods) {
        return goodsDao.addGoods(goods);
    }

    /**
     * 添加主键新增商品
     * @param goods
     * @return
     */
    @Override
    public int addGoods2(Goods goods) {
        return goodsDao.addGoods2(goods);
    }

    /**
     * 删除商品
     * @param goId
     * @return
     */
    @Override
    public int delGoods(int goId) {
        return goodsDao.delGoods(goId);
    }

    /**
     * 修改商品信息
     * @param goods
     * @return
     */
    @Override
    public int altGoods(Goods goods) {
        return goodsDao.altGoods(goods);
    }

    /**
     * 按条件模糊查询所有商品信息
     * @param pb
     * @param name
     * @return
     */
    @Override
    public PageBean queryAllGoodsInfo(PageBean pb, String name) {
        pb.setTotalCount(goodsDao.count(name));
        if(pb.getTotalCount()%pb.getPageSize()==0){
            pb.setTotalPage(pb.getTotalCount()/pb.getPageSize());
        }
        else{
            pb.setTotalPage(pb.getTotalCount()/pb.getPageSize()+1);
        }
        pb=goodsDao.queryAllGoodsInfo(pb,name);
        List<Goods> list=pb.getList();
        List<Goods> list2=new ArrayList<>();
        for(int i=0;i<list.size();i++){
            Goods goods=new Goods();
            goods.setGoState(list.get(i).getGoState());
            goods.setGoSecKill(list.get(i).getGoSecKill());
            goods.setClId(list.get(i).getClId());
            goods.setGoCost(list.get(i).getGoCost());
            goods.setGoDescribe(list.get(i).getGoDescribe());
            goods.setGoName(list.get(i).getGoName());
            goods.setGoPictureUrl(list.get(i).getGoPictureUrl());
            goods.setGoPraise(list.get(i).getGoPraise());
            goods.setGoPrice(list.get(i).getGoPrice());
            goods.setGoSalesVolume(list.get(i).getGoSalesVolume());
            goods.setGoStock(list.get(i).getGoStock());
            goods.setGoUptime(list.get(i).getGoUptime());
            goods.setGoId(list.get(i).getGoId());
            goods.setClName(list.get(i).getClName());
            goods.setSecKill();
            goods.setState();
            list2.add(goods);
        }
        pb.setList(list2);
        return pb;
    }

    /**
     * 查询所有商品信息
     * @return
     */
    @Override
    public List<Goods>queryAllGoods() {
        return goodsDao.queryAllGoods();
    }

    /**
     * 根据商品id查询商品信息
     * @param goId
     * @return
     */
    @Override
    public Goods queryGoodsInfo(int goId) {
        return goodsDao.queryGoodsInfo(goId);
    }

    /**
     * 批量删除商品信息
     * @param goid
     * @return
     */
    @Override
    public Boolean deleteLotGoods(int[] goid) {
        for(int i=0;i<goid.length;i++){
            int j=goodsDao.delGoods(goid[i]);
            if(j>0){
                continue;
            }
            else{
                return false;
            }
        }
        return true;
    }

    /**
     * 批量查找商品信息
     * @param goid
     * @return
     */
    @Override
    public List<Goods> queryLotGoods(int[] goid) {
        List<Goods> list=new ArrayList<>();

        for(int i=0;i<goid.length;i++){
            Goods goods=new Goods();
            goods=goodsDao.queryGoodsInfo(goid[i]);
            list.add(goods);
        }
        return list;
    }
}
